[INFO] fetching crate every-other-token 4.1.2...
[INFO] testing every-other-token-4.1.2 against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] extracting crate every-other-token 4.1.2 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate every-other-token 4.1.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate every-other-token 4.1.2
[INFO] tweaked toml for crates.io crate every-other-token 4.1.2 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate every-other-token 4.1.2 on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate every-other-token 4.1.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded uuid v1.21.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.110
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.110
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.110
[INFO] [stderr]   Downloaded matchers v0.2.0
[INFO] [stderr]   Downloaded windows-registry v0.6.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.110
[INFO] [stderr]   Downloaded tokio-test v0.4.5
[INFO] [stderr]   Downloaded rstest v0.18.2
[INFO] [stderr]   Downloaded tokio-tungstenite v0.21.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.60
[INFO] [stderr]   Downloaded system-configuration v0.7.0
[INFO] [stderr]   Downloaded hashlink v0.9.1
[INFO] [stderr]   Downloaded thread_local v1.1.9
[INFO] [stderr]   Downloaded relative-path v1.9.3
[INFO] [stderr]   Downloaded wasm-streams v0.4.2
[INFO] [stderr]   Downloaded socket2 v0.6.2
[INFO] [stderr]   Downloaded tungstenite v0.21.0
[INFO] [stderr]   Downloaded clap_complete v4.6.0
[INFO] [stderr]   Downloaded rstest_macros v0.18.2
[INFO] [stderr]   Downloaded arc-swap v1.8.2
[INFO] [stderr]   Downloaded js-sys v0.3.87
[INFO] [stderr]   Downloaded rusqlite v0.31.0
[INFO] [stderr]   Downloaded reqwest v0.12.28
[INFO] [stderr]   Downloaded h2 v0.4.13
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.23
[INFO] [stderr]   Downloaded redis v0.26.1
[INFO] [stderr]   Downloaded web-sys v0.3.87
[INFO] [stderr]   Downloaded libsqlite3-sys v0.28.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6de2e79f1614148b25178f9a3ed988fb95045b12b1aee57c88eb0dd532a73824
[INFO] running `Command { std: "docker" "start" "-a" "6de2e79f1614148b25178f9a3ed988fb95045b12b1aee57c88eb0dd532a73824", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6de2e79f1614148b25178f9a3ed988fb95045b12b1aee57c88eb0dd532a73824", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6de2e79f1614148b25178f9a3ed988fb95045b12b1aee57c88eb0dd532a73824", kill_on_drop: false }`
[INFO] [stdout] 6de2e79f1614148b25178f9a3ed988fb95045b12b1aee57c88eb0dd532a73824
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] efe6d464412d6918a5163e11ab207c21ee7c0951be817e5ecba56cf65ede34a0
[INFO] running `Command { std: "docker" "start" "-a" "efe6d464412d6918a5163e11ab207c21ee7c0951be817e5ecba56cf65ede34a0", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling every-other-token v4.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling clap_complete v4.6.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tungstenite v0.21.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.21.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stdout] warning: field `provider` is never read
[INFO] [stdout]    --> src/web.rs:921:17
[INFO] [stdout]     |
[INFO] [stdout] 916 |             struct BatchRequest {
[INFO] [stdout]     |                    ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 921 |                 provider: String,
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 21s
[INFO] running `Command { std: "docker" "inspect" "efe6d464412d6918a5163e11ab207c21ee7c0951be817e5ecba56cf65ede34a0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efe6d464412d6918a5163e11ab207c21ee7c0951be817e5ecba56cf65ede34a0", kill_on_drop: false }`
[INFO] [stdout] efe6d464412d6918a5163e11ab207c21ee7c0951be817e5ecba56cf65ede34a0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 04237f4e75d282e648827e54126574172f225cd65c1e45ea016b74d0a8861542
[INFO] running `Command { std: "docker" "start" "-a" "04237f4e75d282e648827e54126574172f225cd65c1e45ea016b74d0a8861542", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling rstest_macros v0.18.2
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-tungstenite v0.21.0
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling rstest v0.18.2
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling every-other-token v4.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `provider` is never read
[INFO] [stdout]    --> src/web.rs:921:17
[INFO] [stdout]     |
[INFO] [stdout] 916 |             struct BatchRequest {
[INFO] [stdout]     |                    ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 921 |                 provider: String,
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `provider` is never read
[INFO] [stdout]    --> src/web.rs:921:17
[INFO] [stdout]     |
[INFO] [stdout] 916 |             struct BatchRequest {
[INFO] [stdout]     |                    ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 921 |                 provider: String,
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "04237f4e75d282e648827e54126574172f225cd65c1e45ea016b74d0a8861542", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04237f4e75d282e648827e54126574172f225cd65c1e45ea016b74d0a8861542", kill_on_drop: false }`
[INFO] [stdout] 04237f4e75d282e648827e54126574172f225cd65c1e45ea016b74d0a8861542
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f84171a7d3447243ca362ab845189c8fc48fa182a2706021e47d6254c1e96602
[INFO] running `Command { std: "docker" "start" "-a" "f84171a7d3447243ca362ab845189c8fc48fa182a2706021e47d6254c1e96602", kill_on_drop: false }`
[INFO] [stderr] warning: field `provider` is never read
[INFO] [stderr]    --> src/web.rs:921:17
[INFO] [stderr]     |
[INFO] [stderr] 916 |             struct BatchRequest {
[INFO] [stderr]     |                    ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 921 |                 provider: String,
[INFO] [stderr]     |                 ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `every-other-token` (lib) generated 1 warning
[INFO] [stderr] warning: `every-other-token` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.46s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/every_other_token-7cbf18778dc9c9f2)
[INFO] [stdout] 
[INFO] [stdout] running 695 tests
[INFO] [stdout] test cli::tests::test_apply_template_no_placeholder ... ok
[INFO] [stdout] test cli::tests::test_args_default_port ... ok
[INFO] [stdout] test cli::tests::test_args_format_jsonl ... ok
[INFO] [stdout] test cli::tests::test_args_dry_run_flag ... ok
[INFO] [stdout] test cli::tests::test_apply_template_multiple_placeholders ... ok
[INFO] [stdout] test cli::tests::test_apply_template_prompt_with_placeholder_not_reexpanded ... ok
[INFO] [stdout] test cli::tests::test_apply_template_with_placeholder ... ok
[INFO] [stdout] test cli::tests::test_args_custom_port ... ok
[INFO] [stdout] test cli::tests::test_args_collapse_window ... ok
[INFO] [stdout] test cli::tests::test_args_orchestrator_url_custom ... ok
[INFO] [stdout] test cli::tests::test_args_max_retries_zero ... ok
[INFO] [stdout] test cli::tests::test_args_min_confidence ... ok
[INFO] [stdout] test cli::tests::test_args_max_retries_custom ... ok
[INFO] [stdout] test cli::tests::test_args_parse_minimal ... ok
[INFO] [stdout] test cli::tests::test_args_parse_provider_anthropic ... ok
[INFO] [stdout] test cli::tests::test_args_parse_provider_openai ... ok
[INFO] [stdout] test cli::tests::test_args_output_default_none ... ok
[INFO] [stdout] test cli::tests::test_args_parse_research_custom_runs ... ok
[INFO] [stdout] test cli::tests::test_args_research_flag_default_false ... ok
[INFO] [stdout] test cli::tests::test_args_parse_research_custom_output ... ok
[INFO] [stdout] test cli::tests::test_args_parse_short_visual ... ok
[INFO] [stdout] test cli::tests::test_args_orchestrator_url_default ... ok
[INFO] [stdout] test cli::tests::test_args_parse_research_flag ... ok
[INFO] [stdout] test cli::tests::test_args_parse_full ... ok
[INFO] [stdout] test cli::tests::test_args_parse_system_a ... ok
[INFO] [stdout] test cli::tests::test_args_parse_system_b ... ok
[INFO] [stdout] test cli::tests::test_args_research_does_not_require_web ... ok
[INFO] [stdout] test cli::tests::test_args_output_custom ... ok
[INFO] [stdout] test cli::tests::test_args_research_with_runs_and_output ... ok
[INFO] [stdout] test cli::tests::test_args_runs_custom ... ok
[INFO] [stdout] test cli::tests::test_args_research_flag_set ... ok
[INFO] [stdout] test cli::tests::test_known_anthropic_models_contain_sonnet ... ok
[INFO] [stdout] test cli::tests::test_known_anthropic_models_nonempty ... ok
[INFO] [stdout] test cli::tests::test_list_models_openai_includes_gpt4 ... ok
[INFO] [stdout] test cli::tests::test_parse_rate_range_invalid ... ok
[INFO] [stdout] test cli::tests::test_parse_rate_range_min_greater_than_max ... ok
[INFO] [stdout] test cli::tests::test_parse_rate_range_equal ... ok
[INFO] [stdout] test cli::tests::test_known_openai_models_contain_gpt4 ... ok
[INFO] [stdout] test cli::tests::test_known_openai_models_nonempty ... ok
[INFO] [stdout] test cli::tests::test_args_timeout_zero_disables ... ok
[INFO] [stdout] test cli::tests::test_export_timeseries_flag_set ... ok
[INFO] [stdout] test cli::tests::test_args_runs_default_one ... ok
[INFO] [stdout] test cli::tests::test_list_models_flag_accepts_openai ... ok
[INFO] [stdout] test cli::tests::test_args_system_prompt_default_none ... ok
[INFO] [stdout] test cli::tests::test_args_timeout_default ... ok
[INFO] [stdout] test cli::tests::test_args_timeout_custom ... ok
[INFO] [stdout] test cli::tests::test_args_system_prompt_set ... ok
[INFO] [stdout] test cli::tests::test_parse_rate_range_no_separator_returns_none ... ok
[INFO] [stdout] test cli::tests::test_resolve_model_openai_default_kept ... ok
[INFO] [stdout] test cli::tests::test_parse_rate_range_scientific_notation ... ok
[INFO] [stdout] test cli::tests::test_resolve_model_openai_explicit_model_kept ... ok
[INFO] [stdout] test cli::tests::test_validate_model_known_anthropic_no_warn ... ok
[INFO] [stdout] test cli::tests::test_parse_rate_range_valid ... ok
[INFO] [stdout] test cli::tests::test_resolve_model_anthropic_default_swap ... ok
[INFO] [stdout] test cli::tests::test_json_schema_flag_outputs_valid_json ... ok
[INFO] [stdout] test cli::tests::test_export_timeseries_flag_default_none ... ok
[INFO] [stdout] test cli::tests::test_list_models_flag_accepts_all ... ok
[INFO] [stdout] test cli::tests::test_resolve_model_anthropic_explicit_model_kept ... ok
[INFO] [stdout] test cli::tests::test_validate_config_flag_exists ... ok
[INFO] [stdout] test cli::tests::test_validate_model_known_openai_no_warn ... ok
[INFO] [stdout] test cli::tests::test_validate_model_mock_always_silent ... ok
[INFO] [stdout] test cli::tests::test_record_path_unwritable_detected ... ok
[INFO] [stdout] test cli::tests::test_validate_model_unknown_does_not_panic ... ok
[INFO] [stdout] test collab::tests::test_add_chat_appends_to_log ... ok
[INFO] [stdout] test collab::tests::test_add_chat_nonexistent_room_is_noop ... ok
[INFO] [stdout] test collab::tests::test_add_chat_multiple_messages ... ok
[INFO] [stdout] test collab::tests::test_add_chat_stores_correct_text ... ok
[INFO] [stdout] test cli::tests::test_args_max_retries_default ... ok
[INFO] [stdout] test collab::tests::test_apply_surgery_appends_to_log ... ok
[INFO] [stdout] test collab::tests::test_apply_surgery_multiple_edits_all_stored ... ok
[INFO] [stdout] test collab::tests::test_apply_surgery_nonexistent_room_is_noop ... ok
[INFO] [stdout] test collab::tests::test_apply_surgery_stores_correct_fields ... ok
[INFO] [stdout] test collab::tests::test_broadcast_to_empty_room_no_panic ... ok
[INFO] [stdout] test collab::tests::test_broadcast_to_existing_room_sends_to_subscriber ... ok
[INFO] [stdout] test collab::tests::test_broadcast_to_nonexistent_room_is_noop ... ok
[INFO] [stdout] test collab::tests::test_broadcast_token_also_records_when_active ... ok
[INFO] [stdout] test collab::tests::test_broadcast_token_reaches_subscriber ... ok
[INFO] [stdout] test collab::tests::test_chat_message_null_token_index_serializes ... ok
[INFO] [stdout] test collab::tests::test_chat_message_roundtrip ... ok
[INFO] [stdout] test collab::tests::test_chat_message_serializes ... ok
[INFO] [stdout] test collab::tests::test_create_multiple_rooms_all_stored ... ok
[INFO] [stdout] test collab::tests::test_create_room_inserts_into_store ... ok
[INFO] [stdout] test collab::tests::test_create_room_starts_not_recording ... ok
[INFO] [stdout] test collab::tests::test_create_room_returns_meaningful_code ... ok
[INFO] [stdout] test collab::tests::test_generate_code_all_uppercase ... ok
[INFO] [stdout] test collab::tests::test_create_room_code_is_uppercase_alphanumeric ... ok
[INFO] [stdout] test collab::tests::test_generate_code_has_hyphen_format ... ok
[INFO] [stdout] test collab::tests::test_create_room_starts_with_empty_logs ... ok
[INFO] [stdout] test collab::tests::test_evict_idle_rooms_removes_stale_room ... ok
[INFO] [stdout] test collab::tests::test_create_room_starts_with_empty_participants ... ok
[INFO] [stdout] test collab::tests::test_evict_idle_rooms_is_pub ... ok
[INFO] [stdout] test collab::tests::test_join_room_assigns_unique_ids ... ok
[INFO] [stdout] test collab::tests::test_full_session_lifecycle ... ok
[INFO] [stdout] test collab::tests::test_generate_code_uniqueness_across_calls ... ok
[INFO] [stdout] test collab::tests::test_evict_idle_rooms_empty_store_is_noop ... ok
[INFO] [stdout] test collab::tests::test_generate_code_no_lowercase ... ok
[INFO] [stdout] test collab::tests::test_join_room_colors_cycle_through_palette ... ok
[INFO] [stdout] test collab::tests::test_concurrent_room_creation ... ok
[INFO] [stdout] test collab::tests::test_join_room_guest_does_not_override_host_id ... ok
[INFO] [stdout] test collab::tests::test_evict_idle_rooms_keeps_active ... ok
[INFO] [stdout] test collab::tests::test_evict_idle_rooms_keeps_active_room ... ok
[INFO] [stdout] test collab::tests::test_generate_code_adjective_from_list ... ok
[INFO] [stdout] test collab::tests::test_evict_idle_rooms_mixed ... ok
[INFO] [stdout] test collab::tests::test_evict_idle_rooms_removes_stale ... ok
[INFO] [stdout] test collab::tests::test_generate_code_length_is_reasonable ... ok
[INFO] [stdout] test collab::tests::test_join_room_host_flag_set_correctly ... ok
[INFO] [stdout] test collab::tests::test_generate_code_all_uppercase_alphanumeric ... ok
[INFO] [stdout] test collab::tests::test_join_room_error_on_nonexistent_code ... ok
[INFO] [stdout] test collab::tests::test_join_room_multiple_participants ... ok
[INFO] [stdout] test collab::tests::test_leave_room_nonexistent_code_returns_none ... ok
[INFO] [stdout] test collab::tests::test_leave_room_only_removes_matching_participant ... ok
[INFO] [stdout] test collab::tests::test_join_room_host_sets_host_id ... ok
[INFO] [stdout] test collab::tests::test_leave_room_nonexistent_participant_returns_none ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_appends_event_when_recording ... ok
[INFO] [stdout] test collab::tests::test_leave_room_returns_broadcast_sender ... ok
[INFO] [stdout] test collab::tests::test_join_room_participant_added ... ok
[INFO] [stdout] test collab::tests::test_lag_warning_message_format ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_chat_and_token_interleaved ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_cap_enforced ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_multiple_events_ordered ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_does_nothing_when_not_recording ... ok
[INFO] [stdout] test collab::tests::test_generate_code_no_collision_at_small_scale ... ok
[INFO] [stdout] test collab::tests::test_generate_code_noun_from_list ... ok
[INFO] [stdout] test collab::tests::test_join_room_joined_at_ms_is_plausible ... ok
[INFO] [stdout] test collab::tests::test_leave_room_removes_participant ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_cap_exceeded_broadcasts_truncated_warning ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_nonexistent_room_is_noop ... ok
[INFO] [stdout] test collab::tests::test_participant_roundtrip ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_stores_payload ... ok
[INFO] [stdout] test collab::tests::test_maybe_record_sets_offset_ms ... ok
[INFO] [stdout] test collab::tests::test_multiple_rooms_record_independently ... ok
[INFO] [stdout] test collab::tests::test_new_room_store_is_empty ... ok
[INFO] [stdout] test collab::tests::test_now_ms_nonzero ... ok
[INFO] [stdout] test collab::tests::test_now_ms_monotonic ... ok
[INFO] [stdout] test collab::tests::test_now_ms_plausible_epoch ... ok
[INFO] [stdout] test collab::tests::test_participant_colors_count ... ok
[INFO] [stdout] test collab::tests::test_participant_colors_are_hex ... ok
[INFO] [stdout] test collab::tests::test_participant_serializes_all_fields ... ok
[INFO] [stdout] test collab::tests::test_participant_colors_are_unique ... ok
[INFO] [stdout] test collab::tests::test_record_token_not_recorded_when_not_active ... ok
[INFO] [stdout] test collab::tests::test_recorded_event_roundtrip ... ok
[INFO] [stdout] test collab::tests::test_recorded_event_serializes ... ok
[INFO] [stdout] test collab::tests::test_recording_cap_enforced ... ok
[INFO] [stdout] test collab::tests::test_recording_full_lifecycle ... ok
[INFO] [stdout] test collab::tests::test_recording_offset_ms_is_non_decreasing ... ok
[INFO] [stdout] test collab::tests::test_room_not_found_returns_none ... ok
[INFO] [stdout] test collab::tests::test_room_state_snapshot_has_all_keys ... ok
[INFO] [stdout] test collab::tests::test_room_state_snapshot_nonexistent_returns_null ... ok
[INFO] [stdout] test collab::tests::test_room_state_snapshot_reflects_participants ... ok
[INFO] [stdout] test collab::tests::test_room_state_snapshot_returns_code ... ok
[INFO] [stdout] test collab::tests::test_start_recording_clears_previous_events ... ok
[INFO] [stdout] test collab::tests::test_start_recording_sets_flag ... ok
[INFO] [stdout] test collab::tests::test_start_recording_sets_start_time ... ok
[INFO] [stdout] test collab::tests::test_recording_cap_default_is_ten_thousand ... ok
[INFO] [stdout] test collab::tests::test_stop_recording_clears_flag ... ok
[INFO] [stdout] test collab::tests::test_stop_recording_drains_events_from_store ... ok
[INFO] [stdout] test collab::tests::test_stop_recording_nonexistent_room_returns_empty ... ok
[INFO] [stdout] test collab::tests::test_stop_recording_returns_recorded_events ... ok
[INFO] [stdout] test collab::tests::test_stream_done_broadcast_reaches_subscriber ... ok
[INFO] [stdout] test collab::tests::test_surgery_edit_roundtrip ... ok
[INFO] [stdout] test collab::tests::test_surgery_edit_serializes ... ok
[INFO] [stdout] test collab::tests::test_token_broadcast_increments_room_count_independently ... ok
[INFO] [stdout] test collab::tests::test_truncate_utf8_ascii_truncated ... ok
[INFO] [stdout] test collab::tests::test_truncate_utf8_ascii_unchanged ... ok
[INFO] [stdout] test collab::tests::test_truncate_utf8_exact_limit ... ok
[INFO] [stdout] test collab::tests::test_truncate_utf8_multibyte_boundary_aligned ... ok
[INFO] [stdout] test collab::tests::test_truncate_utf8_multibyte_no_panic ... ok
[INFO] [stdout] test collab::tests::test_vote_different_transforms_independent ... ok
[INFO] [stdout] test collab::tests::test_vote_invalid_dir_does_not_change_counts ... ok
[INFO] [stdout] test collab::tests::test_vote_mixed_up_and_down ... ok
[INFO] [stdout] test collab::tests::test_vote_multiple_up_accumulates ... ok
[INFO] [stdout] test collab::tests::test_vote_nonexistent_room_returns_none ... ok
[INFO] [stdout] test collab::tests::test_vote_saturation_at_u32_max_does_not_panic ... ok
[INFO] [stdout] test collab::tests::test_vote_up_increments_upvotes ... ok
[INFO] [stdout] test collab::tests::test_ws_msg_malformed_json_ignored ... ok
[INFO] [stdout] test collab::tests::test_ws_msg_unknown_type_ignored ... ok
[INFO] [stdout] test config::tests::test_default_config_all_none ... ok
[INFO] [stdout] test config::tests::test_home_dir_no_panic ... ok
[INFO] [stdout] test config::tests::test_load_does_not_panic_without_config_files ... ok
[INFO] [stdout] test config::tests::test_load_file_missing_returns_default ... ok
[INFO] [stdout] test config::tests::test_load_file_rate_negative_clamped_to_zero ... ok
[INFO] [stdout] test config::tests::test_load_file_invalid_toml_returns_default ... ok
[INFO] [stdout] test config::tests::test_load_file_rate_too_high_clamped_to_one ... ok
[INFO] [stdout] test config::tests::test_merge_all_fields ... ok
[INFO] [stdout] test config::tests::test_merge_does_not_overwrite_with_none ... ok
[INFO] [stdout] test config::tests::test_load_file_valid_toml_parses_fields ... ok
[INFO] [stdout] test config::tests::test_merge_local_wins_over_home ... ok
[INFO] [stdout] test config::tests::test_load_file_rate_valid_unchanged ... ok
[INFO] [stdout] test config::tests::test_merge_overwrites_none_fields ... ok
[INFO] [stdout] test error::tests::test_api_key_missing_message ... ok
[INFO] [stdout] test error::tests::test_debug_format ... ok
[INFO] [stdout] test error::tests::test_from_string ... ok
[INFO] [stdout] test error::tests::test_invalid_transform_message ... ok
[INFO] [stdout] test error::tests::test_io_error_wraps ... ok
[INFO] [stdout] test error::tests::test_json_error_wraps ... ok
[INFO] [stdout] test error::tests::test_other_wraps_string ... ok
[INFO] [stdout] test error::tests::test_provider_http_message ... ok
[INFO] [stdout] test error::tests::test_provider_json_message ... ok
[INFO] [stdout] test heatmap::tests::test_empty_exporter ... ok
[INFO] [stdout] test heatmap::tests::test_min_confidence_filter ... ok
[INFO] [stdout] test heatmap::tests::test_multiple_runs_alignment ... ok
[INFO] [stdout] test heatmap::tests::test_nan_confidence_sorts_last ... ok
[INFO] [stdout] test providers::tests::test_anthropic_api_version_format ... ok
[INFO] [stdout] test heatmap::tests::test_record_and_export ... ok
[INFO] [stdout] test providers::tests::test_anthropic_api_version_nonempty ... ok
[INFO] [stdout] test providers::tests::test_anthropic_content_block_delta_deserializes ... ok
[INFO] [stdout] test providers::tests::test_anthropic_event_message_delta ... ok
[INFO] [stdout] test providers::tests::test_anthropic_event_ping ... ok
[INFO] [stdout] test providers::tests::test_anthropic_plugin_api_url_contains_anthropic ... ok
[INFO] [stdout] test providers::tests::test_anthropic_plugin_api_url_https ... ok
[INFO] [stdout] test providers::tests::test_anthropic_plugin_name_matches_display ... ok
[INFO] [stdout] test providers::tests::test_anthropic_request_with_system_serializes ... ok
[INFO] [stdout] test providers::tests::test_anthropic_request_without_system_omits_field ... ok
[INFO] [stdout] test providers::tests::test_mcp_infer_request_contains_all_fields ... ok
[INFO] [stdout] test providers::tests::test_mcp_request_serializes ... ok
[INFO] [stdout] test providers::tests::test_mcp_response_deserializes_error ... ok
[INFO] [stdout] test providers::tests::test_mcp_response_deserializes_success ... ok
[INFO] [stdout] test providers::tests::test_mcp_response_empty_content ... ok
[INFO] [stdout] test providers::tests::test_mcp_response_null_text ... ok
[INFO] [stdout] test providers::tests::test_openai_chat_request_has_logprobs_fields ... ok
[INFO] [stdout] test providers::tests::test_openai_choice_with_logprobs_deserializes ... ok
[INFO] [stdout] test providers::tests::test_openai_choice_without_logprobs_is_none ... ok
[INFO] [stdout] test providers::tests::test_openai_chunk_deserializes ... ok
[INFO] [stdout] test providers::tests::test_openai_chunk_empty_delta ... ok
[INFO] [stdout] test providers::tests::test_openai_chunk_logprobs_empty_content ... ok
[INFO] [stdout] test providers::tests::test_openai_chunk_multiple_choices ... ok
[INFO] [stdout] test providers::tests::test_openai_chunk_no_choices ... ok
[INFO] [stdout] test providers::tests::test_openai_logprob_content_deserializes ... ok
[INFO] [stdout] test providers::tests::test_openai_logprob_content_no_top_logprobs ... ok
[INFO] [stdout] test providers::tests::test_openai_plugin_api_url_contains_openai ... ok
[INFO] [stdout] test providers::tests::test_openai_plugin_default_model_nonempty ... ok
[INFO] [stdout] test providers::tests::test_openai_plugin_api_url_https ... ok
[INFO] [stdout] test providers::tests::test_openai_plugin_name_matches_display ... ok
[INFO] [stdout] test providers::tests::test_openai_top_logprob_clone ... ok
[INFO] [stdout] test providers::tests::test_openai_top_logprob_serializes ... ok
[INFO] [stdout] test providers::tests::test_provider_openai_display_lowercase ... ok
[INFO] [stdout] test render::tests::test_confidence_band_high ... ok
[INFO] [stdout] test providers::tests::test_provider_display ... ok
[INFO] [stdout] test render::tests::test_confidence_band_indicators_distinct ... ok
[INFO] [stdout] test render::tests::test_confidence_band_mid ... ok
[INFO] [stdout] test providers::tests::test_provider_anthropic_display_lowercase ... ok
[INFO] [stdout] test providers::tests::test_provider_equality ... ok
[INFO] [stdout] test render::tests::test_format_visual_high_perplexity_shown ... ok
[INFO] [stdout] test render::tests::test_format_visual_low_perplexity_hidden ... ok
[INFO] [stdout] test render::tests::test_format_visual_with_confidence ... ok
[INFO] [stdout] test render::tests::test_format_visual_with_alternatives ... ok
[INFO] [stdout] test render::tests::test_heat_level_1 ... ok
[INFO] [stdout] test render::tests::test_heat_level_0 ... ok
[INFO] [stdout] test render::tests::test_token_alternative_fields ... ok
[INFO] [stdout] test render::tests::test_confidence_band_boundary_exact_04 ... ok
[INFO] [stdout] test replay::tests::test_recorder_timestamps_non_decreasing ... ok
[INFO] [stdout] test replay::tests::test_recorder_save_load ... ok
[INFO] [stdout] test replay::tests::test_replay_to_channel ... ok
[INFO] [stdout] test replay::tests::test_replay_to_channel_preserves_order ... ok
[INFO] [stdout] test collab::tests::test_vote_down_increments_downvotes ... ok
[INFO] [stdout] test providers::tests::test_anthropic_message_start_deserializes ... ok
[INFO] [stdout] test providers::tests::test_anthropic_plugin_default_model_nonempty ... ok
[INFO] [stdout] test providers::tests::test_openai_top_logprob_deserializes ... ok
[INFO] [stdout] test render::tests::test_heat_level_2 ... ok
[INFO] [stdout] test replay::tests::test_replay_to_channel_timed_instant_speed ... ok
[INFO] [stdout] test render::tests::test_heat_level_3 ... ok
[INFO] [stdout] test render::tests::test_heat_level_4 ... ok
[INFO] [stdout] test research::tests::test_aligned_length_is_min_token_count ... ok
[INFO] [stdout] test research::tests::test_build_aggregate_empty ... ok
[INFO] [stdout] test research::tests::test_aligned_length_empty ... ok
[INFO] [stdout] test render::tests::test_confidence_band_low ... ok
[INFO] [stdout] test render::tests::test_confidence_band_boundary_exact_07 ... ok
[INFO] [stdout] test research::tests::test_build_aggregate_multiple_runs ... ok
[INFO] [stdout] test research::tests::test_build_aggregate_mean_token_count_fractional ... ok
[INFO] [stdout] test replay::tests::test_replayer_load_invalid_json_returns_err ... ok
[INFO] [stdout] test research::tests::test_build_aggregate_no_confidence ... ok
[INFO] [stdout] test providers::tests::test_provider_clone ... ok
[INFO] [stdout] test research::tests::test_collapse_positions_detected ... ok
[INFO] [stdout] test research::tests::test_collapse_positions_none_when_run_too_short ... ok
[INFO] [stdout] test research::tests::test_cost_disclaimer_message_contains_outdated ... ok
[INFO] [stdout] test research::tests::test_empty_prompt_file_returns_ok ... ok
[INFO] [stdout] test research::tests::test_latency_increases_monotonically ... ok
[INFO] [stdout] test research::tests::test_percentile_latency_empty_returns_none ... ok
[INFO] [stdout] test replay::tests::test_replayer_load_empty_array ... ok
[INFO] [stdout] test research::tests::test_cost_per_1k_tokens_known_models ... ok
[INFO] [stdout] test research::tests::test_build_aggregate_single_run ... ok
[INFO] [stdout] test research::tests::test_build_aggregate_std_dev_fields_present ... ok
[INFO] [stdout] test research::tests::test_build_aggregate_total_runs_matches_param ... ok
[INFO] [stdout] test render::tests::test_format_visual_no_extras ... ok
[INFO] [stdout] test research::tests::test_percentile_latency_p0_is_min ... ok
[INFO] [stdout] test research::tests::test_percentile_latency_p100_is_max ... ok
[INFO] [stdout] test research::tests::test_percentile_latency_p50_even ... ok
[INFO] [stdout] test research::tests::test_percentile_latency_p95 ... ok
[INFO] [stdout] test research::tests::test_percentile_latency_single_element ... ok
[INFO] [stdout] test research::tests::test_ci_95_with_two_samples ... ok
[INFO] [stdout] test research::tests::test_research_output_serializes ... ok
[INFO] [stdout] test research_tests::test_circuit_breaker_reopens_after_timeout ... ok
[INFO] [stdout] test research_tests::test_dropped_chunk_counter_increments ... ok
[INFO] [stdout] test research::tests::test_research_run_serializes ... ok
[INFO] [stdout] test research_tests::test_research_session_none_fields_serialize_as_null ... ok
[INFO] [stdout] test research::tests::test_run_research_runs_zero_returns_error ... ok
[INFO] [stdout] test research::tests::test_std_dev_calculation ... ok
[INFO] [stdout] test research::tests::test_two_sample_t_test_different_means_returns_some ... ok
[INFO] [stdout] test research::tests::test_two_sample_t_test_too_few_samples_returns_none ... ok
[INFO] [stdout] test research::tests::test_two_sample_t_test_same_means ... ok
[INFO] [stdout] test research_tests::test_circuit_breaker_429_does_not_trip ... ok
[INFO] [stdout] test research_tests::test_research_session_serializes_basic_fields ... ok
[INFO] [stdout] test research_tests::test_research_session_runs_field_roundtrips ... ok
[INFO] [stdout] test research_tests::test_research_session_vocab_diversity_in_bounds ... ok
[INFO] [stdout] test research_tests::test_research_session_top_tokens_at_most_ten ... ok
[INFO] [stdout] test research_tests::test_research_session_citation_contains_prompt ... ok
[INFO] [stdout] test render::tests::test_heat_colorize_returns_text ... ok
[INFO] [stdout] test research::tests::test_write_timeseries_csv_creates_file ... ok
[INFO] [stdout] test research_tests::test_research_session_estimated_cost_scales_with_tokens ... ok
[INFO] [stdout] test research_tests::test_research_session_transform_field ... ok
[INFO] [stdout] test store::tests::test_dedup_check_miss ... ok
[INFO] [stdout] test store::tests::test_dedup_expired ... ok
[INFO] [stdout] test store::tests::test_insert_and_query_experiment ... ok
[INFO] [stdout] test store::tests::test_insert_experiment_with_run_atomic ... ok
[INFO] [stdout] test store::tests::test_insert_experiment_with_run_run_is_linked ... ok
[INFO] [stdout] test store::tests::test_insert_run ... ok
[INFO] [stdout] test store::tests::test_dedup_register_and_hit ... ok
[INFO] [stdout] test store::tests::test_open_in_memory ... ok
[INFO] [stdout] test store::tests::test_load_runs_by_transform_cached_stmt ... ok
[INFO] [stdout] test store::tests::test_storage_trait_list_empty ... ok
[INFO] [stdout] test store::tests::test_storage_trait_list_experiments ... ok
[INFO] [stdout] test store::tests::test_storage_trait_store_experiment ... ok
[INFO] [stdout] test store::tests::test_storage_trait_store_run ... ok
[INFO] [stdout] test tests::test_chaos_label_none_for_even_tokens ... ok
[INFO] [stdout] test tests::test_chaos_label_serialization ... ok
[INFO] [stdout] test research_tests::test_run_research_headless_mock_vocab_diversity_in_bounds ... ok
[INFO] [stdout] test tests::test_chaos_label_skipped_when_none ... ok
[INFO] [stdout] test tests::test_confidence_omitted_when_none ... ok
[INFO] [stdout] test tests::test_confidence_serialized_when_some ... ok
[INFO] [stdout] test research_tests::test_with_rate_clamps_above_one ... ok
[INFO] [stdout] test research_tests::test_run_research_headless_mock_token_count_positive ... ok
[INFO] [stdout] test research_tests::test_run_research_headless_mock_returns_session ... ok
[INFO] [stdout] test tests::test_chaos_label_none_for_reverse_transform ... ok
[INFO] [stdout] test research_tests::test_with_rate_one_transforms_all_tokens ... ok
[INFO] [stdout] test research_tests::test_run_research_headless_mock_transform_label_in_citation ... ok
[INFO] [stdout] test research_tests::test_run_research_headless_empty_prompt_returns_error ... ok
[INFO] [stdout] test research_tests::test_with_rate_zero_transforms_no_tokens ... ok
[INFO] [stdout] test research_tests::test_with_rate_clamps_below_zero ... ok
[INFO] [stdout] test research_tests::test_with_rate_sets_rate ... ok
[INFO] [stdout] test tests::test_new_anthropic_requires_api_key ... ok
[INFO] [stdout] test tests::test_new_openai_requires_api_key ... ok
[INFO] [stdout] test tests::test_export_all_tokens_have_valid_importance ... ok
[INFO] [stdout] test tests::test_interceptor_fields_match_construction ... ok
[INFO] [stdout] test tests::test_print_footer ... ok
[INFO] [stdout] test tests::test_even_odd_alternation ... ok
[INFO] [stdout] test tests::test_export_array_sequential_indices ... ok
[INFO] [stdout] test tests::test_interceptor_initial_counts_zero ... ok
[INFO] [stdout] test research_tests::test_with_seed_produces_deterministic_noise_output ... ok
[INFO] [stdout] test tests::test_print_header_with_orchestrator ... ok
[INFO] [stdout] test tests::test_export_large_set_serializes ... ok
[INFO] [stdout] test tests::test_graph_pairs_alternate ... ok
[INFO] [stdout] test research_tests::test_with_seed_different_seeds_may_differ ... ok
[INFO] [stdout] test research_tests::test_timeout_field_default ... ok
[INFO] [stdout] test tests::test_chaos_label_set_for_chaos_transform ... ok
[INFO] [stdout] test tests::test_logprob_confidence_clamps_at_one ... ok
[INFO] [stdout] test tests::test_graph_indices_sequential ... ok
[INFO] [stdout] test tests::test_print_header_with_visual_mode ... ok
[INFO] [stdout] test tests::test_print_header_all_modes ... ok
[INFO] [stdout] test tests::test_multiple_tokens_form_valid_export_array ... ok
[INFO] [stdout] test tests::test_original_field_preserved_for_all_tokens ... ok
[INFO] [stdout] test tests::test_process_content_cross_call_continuity ... ok
[INFO] [stdout] test tests::test_print_header_with_heatmap_mode ... ok
[INFO] [stdout] test tests::test_print_footer_after_processing ... ok
[INFO] [stdout] test tests::test_process_content_logprob_computes_perplexity ... ok
[INFO] [stdout] test tests::test_process_content_logprob_attaches_confidence ... ok
[INFO] [stdout] test tests::test_process_content_empty_string ... ok
[INFO] [stdout] test tests::test_process_content_delegates_to_logprob ... ok
[INFO] [stdout] test tests::test_process_content_logprob_multiple_tokens_only_first_gets_logprob ... ok
[INFO] [stdout] test tests::test_process_content_heatmap_mode_no_crash ... ok
[INFO] [stdout] test tests::test_provider_label_none_means_skipped_in_json ... ok
[INFO] [stdout] test tests::test_process_content_increments_transformed_count ... ok
[INFO] [stdout] test research_tests::test_run_research_headless_mock_multiple_runs_accumulate ... ok
[INFO] [stdout] test tests::test_provider_label_some_appears_in_json ... ok
[INFO] [stdout] test tests::test_process_content_mock_transform ... ok
[INFO] [stdout] test tests::test_process_content_two_tokens ... ok
[INFO] [stdout] test tests::test_process_content_terminal_mode_no_crash ... ok
[INFO] [stdout] test tests::test_token_alternative_clone ... ok
[INFO] [stdout] test tests::test_token_alternative_serializes ... ok
[INFO] [stdout] test transforms::confidence_tests::test_confidence_thresholds_custom ... ok
[INFO] [stdout] test transforms::confidence_tests::test_confidence_thresholds_default_unchanged ... ok
[INFO] [stdout] test transforms::confidence_tests::test_dry_run_chain_shows_steps ... ok
[INFO] [stdout] test transforms::confidence_tests::test_mock_preserves_grapheme_count ... ok
[INFO] [stdout] test transforms::confidence_tests::test_reverse_combining_marks ... ok
[INFO] [stdout] test transforms::confidence_tests::test_scramble_preserves_length ... ok
[INFO] [stdout] test transforms::confidence_tests::test_synonym_load_error_includes_line_number ... ok
[INFO] [stdout] test tests::test_process_content_visual_mode_no_crash ... ok
[INFO] [stdout] test tests::test_process_content_transforms_odd_tokens ... ok
[INFO] [stdout] test tests::test_process_content_logprob_none_gives_none_confidence ... ok
[INFO] [stdout] test tests::test_process_content_single_token ... ok
[INFO] [stdout] test tests::test_process_content_whitespace_only ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_1 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_2 ... ok
[INFO] [stdout] test tests::test_process_content_uppercase_transform ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_4 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_3 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_6 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_5 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_8 ... ok
[INFO] [stdout] test tests::test_process_content_logprob_attaches_alternatives_to_first_token ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_case_insensitive_parse::case_1 ... ok
[INFO] [stdout] test tests::test_process_content_six_tokens_three_transformed ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_case_insensitive_parse::case_3 ... ok
[INFO] [stdout] test tests::test_provider_label_none_by_default ... ok
[INFO] [stdout] test tests::test_provider_label_propagates_to_event ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_case_insensitive_parse::case_4 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_deterministic_transforms::case_1 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_deterministic_transforms::case_3 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_deterministic_transforms::case_2 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_deterministic_transforms::case_4 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_invalid_transforms_error::case_2 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_invalid_transforms_error::case_3 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_invalid_transforms_error::case_4 ... ok
[INFO] [stdout] test transforms::tests::test_apply_with_label_non_chaos_label_matches_name ... ok
[INFO] [stdout] test transforms::tests::test_apply_with_label_text_matches_apply ... ok
[INFO] [stdout] test transforms::tests::test_chain_from_str_loose_single_no_chain ... ok
[INFO] [stdout] test transforms::tests::test_chain_from_str_loose_two ... ok
[INFO] [stdout] test transforms::tests::test_chain_label_joined_with_plus ... ok
[INFO] [stdout] test transforms::tests::test_chain_mock_noise_label ... ok
[INFO] [stdout] test transforms::tests::test_chain_prefix_equivalent_to_comma ... ok
[INFO] [stdout] test transforms::tests::test_chain_prefix_invalid_propagates_err ... ok
[INFO] [stdout] test transforms::tests::test_chain_prefix_single_unwraps ... ok
[INFO] [stdout] test transforms::tests::test_all_transforms_produce_different_results ... ok
[INFO] [stdout] test transforms::tests::test_chain_prefix_two_transforms ... ok
[INFO] [stdout] test transforms::tests::test_delete_always_returns_empty ... ok
[INFO] [stdout] test transforms::tests::test_chain_reverse_uppercase ... ok
[INFO] [stdout] test transforms::tests::test_heatmap_color_contains_text ... ok
[INFO] [stdout] test transforms::tests::test_heatmap_color_nonempty ... ok
[INFO] [stdout] test transforms::tests::test_importance_all_tokens_in_range ... ok
[INFO] [stdout] test transforms::tests::test_importance_clamped ... ok
[INFO] [stdout] test transforms::tests::test_importance_early_position_boost ... ok
[INFO] [stdout] test transforms::tests::test_importance_keyword_boost ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_invalid_transforms_error::case_1 ... ok
[INFO] [stdout] test transforms::tests::test_importance_long_token_boost ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_9 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_case_insensitive_parse::case_2 ... ok
[INFO] [stdout] test transforms::tests::param_tests::test_all_transforms_parse::case_7 ... ok
[INFO] [stdout] test transforms::tests::test_importance_rng_in_range ... ok
[INFO] [stdout] test transforms::tests::test_importance_rng_different_seeds_differ ... ok
[INFO] [stdout] test tests::test_sidebyside_original_is_raw_token ... ok
[INFO] [stdout] test transforms::proptests::chain_applies_in_order ... ok
[INFO] [stdout] test transforms::proptests::noise_appends_one_char ... ok
[INFO] [stdout] test transforms::tests::test_importance_rng_same_seed_same_output ... ok
[INFO] [stdout] test transforms::tests::test_punctuation_low_importance ... ok
[INFO] [stdout] test transforms::tests::test_reverse_is_involution ... ok
[INFO] [stdout] test transforms::tests::test_importance_uppercase_boost ... ok
[INFO] [stdout] test transforms::tests::test_noise_length_always_plus_one ... ok
[INFO] [stdout] test transforms::tests::test_scramble_single_char ... ok
[INFO] [stdout] test transforms::tests::test_reverse_with_numbers ... ok
[INFO] [stdout] test transforms::tests::test_mock_longer_string ... ok
[INFO] [stdout] test transforms::tests::test_scramble_preserves_chars ... ok
[INFO] [stdout] test transforms::tests::test_scramble_empty_string ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_cjk_with_spaces ... ok
[INFO] [stdout] test transforms::tests::test_synonym_overrides_all ... ok
[INFO] [stdout] test transforms::tests::test_scramble_two_chars_both_permutations ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_ellipsis_unicode ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_leading_trailing_space ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_mixed ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_cjk_mixed_with_latin ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_numbers ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_multiple_spaces ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_only_whitespace ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_single_word ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_simple_sentence ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_only_punctuation ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_empty ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_preserves_all_chars ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_smart_quotes ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_em_dash ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_en_dash ... ok
[INFO] [stdout] test transforms::tests::test_scramble_produces_variety ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_cjk_individual_chars ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_unicode_punct_preserves_all_chars ... ok
[INFO] [stdout] test transforms::tests::test_tokenize_with_punctuation ... ok
[INFO] [stdout] test transforms::tests::test_transform_chaos_apply_nonempty ... ok
[INFO] [stdout] test tests::test_system_prompt_can_be_set ... ok
[INFO] [stdout] test transforms::tests::test_transform_chaos_from_str_case_insensitive ... ok
[INFO] [stdout] test transforms::tests::test_transform_delete_label ... ok
[INFO] [stdout] test transforms::tests::test_transform_empty_inputs ... ok
[INFO] [stdout] test transforms::tests::test_transform_chaos_apply_with_label_returns_known_label ... ok
[INFO] [stdout] test transforms::tests::test_transform_delay_passthrough ... ok
[INFO] [stdout] test transforms::tests::test_transform_chaos_from_str ... ok
[INFO] [stdout] test transforms::tests::test_transform_from_str_case_insensitive ... ok
[INFO] [stdout] test transforms::tests::test_transform_chaos_empty_input ... ok
[INFO] [stdout] test transforms::tests::test_transform_from_str_delay_colon ... ok
[INFO] [stdout] test transforms::tests::test_transform_from_str_delay_default ... ok
[INFO] [stdout] test transforms::tests::test_transform_from_str_delete ... ok
[INFO] [stdout] test transforms::tests::test_transform_chaos_apply_with_label_text_nonempty ... ok
[INFO] [stdout] test transforms::tests::test_transform_chaos_produces_variety_over_many_calls ... ok
[INFO] [stdout] test transforms::tests::test_transform_delete_empty ... ok
[INFO] [stdout] test transforms::tests::test_transform_noise_char_from_set ... ok
[INFO] [stdout] test transforms::tests::test_transform_preserves_length ... ok
[INFO] [stdout] test transforms::tests::test_transform_mock_two_chars ... ok
[INFO] [stdout] test transforms::tests::test_transform_from_str_synonym ... ok
[INFO] [stdout] test transforms::tests::test_transform_scramble_label ... ok
[INFO] [stdout] test transforms::tests::test_transform_noise_appends_one_char ... ok
[INFO] [stdout] test transforms::tests::test_transform_scramble_same_chars ... ok
[INFO] [stdout] test transforms::tests::test_transform_single_char ... ok
[INFO] [stdout] test transforms::tests::test_transform_synonym_known ... ok
[INFO] [stdout] test transforms::tests::test_transform_from_str_invalid ... ok
[INFO] [stdout] test transforms::tests::test_transform_from_str_scramble ... ok
[INFO] [stdout] test transforms::tests::test_transform_reverse ... ok
[INFO] [stdout] test transforms::tests::test_transform_synonym_unknown_passthrough ... ok
[INFO] [stdout] test transforms::tests::test_transform_noise ... ok
[INFO] [stdout] test transforms::tests::test_transform_from_str_valid ... ok
[INFO] [stdout] test transforms::tests::test_transform_synonym_label ... ok
[INFO] [stdout] test transforms::tests::test_uppercase_already_upper ... ok
[INFO] [stdout] test transforms::tests::test_uppercase_is_idempotent ... ok
[INFO] [stdout] test transforms::tests::test_uppercase_with_numbers ... ok
[INFO] [stdout] test tests::test_process_content_noise_transform ... ok
[INFO] [stdout] test web::tests::test_batch_request_invalid_json_fails ... ok
[INFO] [stdout] test web::tests::test_collab_module_generate_code_alphanumeric ... ok
[INFO] [stdout] test transforms::tests::test_transform_mock ... ok
[INFO] [stdout] test transforms::tests::test_transform_uppercase ... ok
[INFO] [stdout] test web::tests::test_batch_request_max_10_prompts_allowed ... ok
[INFO] [stdout] test web::tests::test_batch_request_parse_empty_prompts_rejected ... ok
[INFO] [stdout] test web::tests::test_batch_request_parse_valid ... ok
[INFO] [stdout] test web::tests::test_batch_request_parse_too_many_prompts_rejected ... ok
[INFO] [stdout] test web::tests::test_collab_module_create_room_returns_code ... ok
[INFO] [stdout] test web::tests::test_collab_module_participant_colors_nonempty ... ok
[INFO] [stdout] test web::tests::test_collab_module_generate_code_length ... ok
[INFO] [stdout] test web::tests::test_collab_module_generate_code_uppercase ... ok
[INFO] [stdout] test web::tests::test_collab_module_join_nonexistent_room_errors ... ok
[INFO] [stdout] test web::tests::test_collab_module_vote_increments_correctly ... ok
[INFO] [stdout] test web::tests::test_index_html_content_length_matches ... ok
[INFO] [stdout] test web::tests::test_diff_token_event_anthropic_side ... ok
[INFO] [stdout] test web::tests::test_index_html_has_ab_panel_b ... ok
[INFO] [stdout] test web::tests::test_index_html_has_ab_panel_a ... ok
[INFO] [stdout] test web::tests::test_index_html_has_ab_stream_route ... ok
[INFO] [stdout] test web::tests::test_collab_module_broadcast_reaches_subscriber ... ok
[INFO] [stdout] test web::tests::test_collab_module_vote_down ... ok
[INFO] [stdout] test web::tests::test_index_html_has_chaos_label_in_mkspan ... ok
[INFO] [stdout] test web::tests::test_cors_origin_default_is_star ... ok
[INFO] [stdout] test web::tests::test_index_html_has_ab_system_prompts ... ok
[INFO] [stdout] test web::tests::test_index_html_has_confidence_css_classes ... ok
[INFO] [stdout] test web::tests::test_index_html_contains_title ... ok
[INFO] [stdout] test web::tests::test_diff_token_event_serializes_with_side ... ok
[INFO] [stdout] test web::tests::test_index_html_has_chaos_tooltip_css ... ok
[INFO] [stdout] test web::tests::test_index_html_has_chat_send_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_chaos_transform ... ok
[INFO] [stdout] test web::tests::test_index_html_has_bezier_curves ... ok
[INFO] [stdout] test web::tests::test_index_html_has_auto_join_logic ... ok
[INFO] [stdout] test web::tests::test_index_html_has_chat_panel ... ok
[INFO] [stdout] test web::tests::test_collab_module_room_state_snapshot_has_expected_fields ... ok
[INFO] [stdout] test web::tests::test_index_html_has_confidence_rendering ... ok
[INFO] [stdout] test web::tests::test_index_html_has_chaos_js_transform ... ok
[INFO] [stdout] test web::tests::test_index_html_has_dark_theme ... ok
[INFO] [stdout] test web::tests::test_index_html_has_copy_link_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_diff_css ... ok
[INFO] [stdout] test web::tests::test_index_html_has_diff_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_experiment_divergence ... ok
[INFO] [stdout] test web::tests::test_index_html_has_done_signal_handling ... ok
[INFO] [stdout] test web::tests::test_index_html_has_experiment_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_experiment_view ... ok
[INFO] [stdout] test web::tests::test_index_html_has_experiment_view_in_views_map ... ok
[INFO] [stdout] test web::tests::test_index_html_has_graph_toggle ... ok
[INFO] [stdout] test web::tests::test_index_html_has_graph_canvas ... ok
[INFO] [stdout] test web::tests::test_index_html_has_high_perp_animation ... ok
[INFO] [stdout] test web::tests::test_index_html_has_diff_highlight_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_heat_color_function ... ok
[INFO] [stdout] test web::tests::test_index_html_has_host_session_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_export_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_export_download ... ok
[INFO] [stdout] test web::tests::test_index_html_has_join_toast_css ... ok
[INFO] [stdout] test web::tests::test_index_html_has_diff_stream_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_diff_view ... ok
[INFO] [stdout] test web::tests::test_index_html_has_mp_panel ... ok
[INFO] [stdout] test web::tests::test_index_html_has_on_ws_msg_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_mp_count_badge ... ok
[INFO] [stdout] test web::tests::test_index_html_has_leave_room_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_participant_join_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_js_transforms ... ok
[INFO] [stdout] test web::tests::test_index_html_has_peer_edited_css ... ok
[INFO] [stdout] test web::tests::test_index_html_has_peer_colors_map ... ok
[INFO] [stdout] test web::tests::test_index_html_has_perplexity_sparkline ... ok
[INFO] [stdout] test web::tests::test_index_html_has_heatmap_toggle ... ok
[INFO] [stdout] test web::tests::test_index_html_has_participant_leave_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_participant_sidebar ... ok
[INFO] [stdout] test web::tests::test_index_html_has_join_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_multi_panel_colors ... ok
[INFO] [stdout] test web::tests::test_index_html_has_perplexity_rendering ... ok
[INFO] [stdout] test web::tests::test_index_html_has_provider_selector ... ok
[INFO] [stdout] test web::tests::test_index_html_has_record_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_record_stopped_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_record_started_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_mutation_observer_for_surgery ... ok
[INFO] [stdout] test web::tests::test_index_html_has_mode_buttons ... ok
[INFO] [stdout] test web::tests::test_index_html_has_join_session_input ... ok
[INFO] [stdout] test web::tests::test_index_html_has_render_research_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_replay_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_research_view ... ok
[INFO] [stdout] test web::tests::test_index_html_has_research_view_in_views_map ... ok
[INFO] [stdout] test web::tests::test_index_html_has_sse_event_source ... ok
[INFO] [stdout] test web::tests::test_index_html_has_room_code_input ... ok
[INFO] [stdout] test web::tests::test_index_html_has_replay_event_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_side_by_side_labels ... ok
[INFO] [stdout] test web::tests::test_index_html_has_research_grid ... ok
[INFO] [stdout] test web::tests::test_index_html_has_send_ws_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_room_create_fetch ... ok
[INFO] [stdout] test web::tests::test_index_html_has_research_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_start_experiment_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_stream_button ... ok
[INFO] [stdout] test web::tests::test_index_html_has_surgery_css ... ok
[INFO] [stdout] test web::tests::test_index_html_has_surgery_peer_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_vote_buttons ... ok
[INFO] [stdout] test web::tests::test_index_html_has_vote_update_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_stats_display ... ok
[INFO] [stdout] test web::tests::test_index_html_has_view_modes ... ok
[INFO] [stdout] test web::tests::test_index_html_has_stream_done_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_has_surgery_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_token_animation ... ok
[INFO] [stdout] test web::tests::test_index_html_has_vote_bar ... ok
[INFO] [stdout] test web::tests::test_index_html_has_transform_selector ... ok
[INFO] [stdout] test web::tests::test_index_html_has_update_perp_sparkline_fn ... ok
[INFO] [stdout] test web::tests::test_index_html_has_ws_route_pattern ... ok
[INFO] [stdout] test web::tests::test_index_html_is_valid_html ... ok
[INFO] [stdout] test web::tests::test_index_html_mutation_observer_broadcasts_surgery ... ok
[INFO] [stdout] test web::tests::test_index_html_multiplayer_token_broadcast_via_ws ... ok
[INFO] [stdout] test web::tests::test_index_html_has_websocket_init ... ok
[INFO] [stdout] test web::tests::test_index_html_render_research_called_on_done ... ok
[INFO] [stdout] test web::tests::test_index_html_responsive_viewport ... ok
[INFO] [stdout] test web::tests::test_index_html_has_welcome_message_handler ... ok
[INFO] [stdout] test web::tests::test_index_html_host_session_broadcasts_tokens ... ok
[INFO] [stdout] test web::tests::test_index_html_multiplayer_no_external_deps ... ok
[INFO] [stdout] test web::tests::test_max_prompt_len_is_100k ... ok
[INFO] [stdout] test web::tests::test_index_html_stream_done_enables_guests ... ok
[INFO] [stdout] test web::tests::test_parse_query_basic ... ok
[INFO] [stdout] test web::tests::test_parse_query_many_params ... ok
[INFO] [stdout] test web::tests::test_parse_query_duplicate_keys_last_wins ... ok
[INFO] [stdout] test web::tests::test_parse_query_no_value ... ok
[INFO] [stdout] test web::tests::test_index_html_surgery_log_in_export ... ok
[INFO] [stdout] test web::tests::test_parse_query_multiple_pairs ... ok
[INFO] [stdout] test web::tests::test_parse_query_single_pair ... ok
[INFO] [stdout] test web::tests::test_parse_query_special_chars_in_value ... ok
[INFO] [stdout] test web::tests::test_parse_query_single_param ... ok
[INFO] [stdout] test web::tests::test_parse_query_url_decoded_value ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_defaults ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_empty_system_is_none ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_rate_nan_uses_default ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_rate_negative_clamped ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_rate_over_one_clamped ... ok
[INFO] [stdout] test transforms::proptests::reverse_is_involution ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_rate_parsed ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_top_logprobs_valid_unchanged ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_system_prompt ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_seed_parsed ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_top_logprobs_clamped_to_20 ... ok
[INFO] [stdout] test transforms::proptests::uppercase_is_idempotent ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_visual_flag_true ... ok
[INFO] [stdout] test web::tests::test_rate_limit_allows_up_to_max ... ok
[INFO] [stdout] test web::tests::test_rate_limit_blocks_over_max ... ok
[INFO] [stdout] test web::tests::test_rate_limit_different_ips_independent ... ok
[INFO] [stdout] test web::tests::test_rate_limit_saturating_add_no_overflow ... ok
[INFO] [stdout] test web::tests::test_rate_limit_window_resets_after_expiry ... ok
[INFO] [stdout] test web::tests::test_replay_response_prefix ... ok
[INFO] [stdout] test web::tests::test_url_decode_consecutive_percent ... ok
[INFO] [stdout] test web::tests::test_url_decode_ampersand ... ok
[INFO] [stdout] test web::tests::test_url_decode_basic ... ok
[INFO] [stdout] test web::tests::test_serve_binds_to_port ... ok
[INFO] [stdout] test web::tests::test_url_decode_empty ... ok
[INFO] [stdout] test web::tests::test_url_decode_encoded_percent ... ok
[INFO] [stdout] test web::tests::test_url_decode_empty_string_is_empty ... ok
[INFO] [stdout] test web::tests::test_url_decode_capacity_hint ... ok
[INFO] [stdout] test web::tests::test_url_decode_equals ... ok
[INFO] [stdout] test web::tests::test_url_decode_incomplete_percent_no_panic ... ok
[INFO] [stdout] test web::tests::test_url_decode_invalid_hex_emitted_literally ... ok
[INFO] [stdout] test web::tests::test_url_decode_long_string ... ok
[INFO] [stdout] test web::tests::test_url_decode_mixed ... ok
[INFO] [stdout] test web::tests::test_url_decode_malformed_percent ... ok
[INFO] [stdout] test transforms::proptests::delete_always_empty ... ok
[INFO] [stdout] test web::tests::test_parse_stream_params_visual_flag_one ... ok
[INFO] [stdout] test web::tests::test_url_decode_mixed_equals_ampersand ... ok
[INFO] [stdout] test web::tests::test_parse_query_empty_value ... ok
[INFO] [stdout] test web::tests::test_parse_query_encoded_values ... ok
[INFO] [stdout] test web::tests::test_url_decode_no_encoding ... ok
[INFO] [stdout] test web::tests::test_url_decode_percent_space ... ok
[INFO] [stdout] test web::tests::test_url_decode_one_hex_digit_no_panic ... ok
[INFO] [stdout] test web::tests::test_room_replay_route_pattern ... ok
[INFO] [stdout] test web::tests::test_url_decode_percent_special_chars ... ok
[INFO] [stdout] test web::tests::test_url_decode_only_plus ... ok
[INFO] [stdout] test web::tests::test_url_decode_plain_ascii ... ok
[INFO] [stdout] test tests::test_provider_label_openai_and_anthropic_distinct ... ok
[INFO] [stdout] test web::tests::test_url_decode_multibyte_utf8 ... ok
[INFO] [stdout] test web::tests::test_url_decode_plus_to_space ... ok
[INFO] [stdout] test web::tests::test_url_decode_plus_only ... ok
[INFO] [stdout] test web::tests::test_url_decode_multibyte_utf8_accent ... ok
[INFO] [stdout] test web::tests::test_url_decode_trailing_percent_no_panic ... ok
[INFO] [stdout] test web::tests::test_url_decode_single_char ... ok
[INFO] [stdout] test web::tests::test_url_decode_slash ... ok
[INFO] [stdout] test web::tests::test_url_decode_utf8_multibyte_é ... ok
[INFO] [stdout] test tests::test_system_prompt_field_initializes_none ... ok
[INFO] [stdout] test web::tests::test_index_html_no_external_deps ... ok
[INFO] [stdout] test web::tests::test_url_decode_lowercase_hex ... ok
[INFO] [stdout] test web::tests::test_parse_query_empty_string_no_panic ... ok
[INFO] [stdout] test web::tests::test_parse_query_empty ... ok
[INFO] [stdout] test web::tests::test_index_html_stream_done_sent_via_ws ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 695 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.46s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/every_other_token-b10fd96a8f46258d)
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running tests/collab_tests.rs (/opt/rustwide/target/debug/deps/collab_tests-c09c5a9f89468cec)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 62 tests
[INFO] [stdout] test test_add_chat_message_stored ... ok
[INFO] [stdout] test test_apply_surgery_preserves_old_text ... ok
[INFO] [stdout] test test_chat_with_token_index ... ok
[INFO] [stdout] test test_apply_surgery_multiple_edits ... ok
[INFO] [stdout] test test_chat_without_token_index ... ok
[INFO] [stdout] test test_create_room_host_id_empty_initially ... ok
[INFO] [stdout] test test_create_multiple_rooms ... ok
[INFO] [stdout] test test_create_room_initial_participant_count_zero ... ok
[INFO] [stdout] test test_create_room_is_stored ... ok
[INFO] [stdout] test test_create_room_not_recording_initially ... ok
[INFO] [stdout] test test_create_room_returns_6_char_code ... ok
[INFO] [stdout] test test_broadcast_no_subscribers_does_not_panic ... ok
[INFO] [stdout] test test_generate_code_length ... ok
[INFO] [stdout] test test_generate_code_no_lowercase ... ok
[INFO] [stdout] test test_generate_code_uppercase_alphanumeric ... ok
[INFO] [stdout] test test_generate_code_no_special_chars ... ok
[INFO] [stdout] test test_broadcast_nonexistent_room_does_not_panic ... ok
[INFO] [stdout] test test_join_room_assigns_color ... ok
[INFO] [stdout] test test_generate_code_is_unique ... ok
[INFO] [stdout] test test_join_room_assigns_participant_name ... ok
[INFO] [stdout] test test_join_room_guest_flag_not_host ... ok
[INFO] [stdout] test test_join_room_color_wraps_after_all_colors_used ... ok
[INFO] [stdout] test test_join_room_host_flag_set ... ok
[INFO] [stdout] test test_join_room_multiple_participants_get_different_colors ... ok
[INFO] [stdout] test test_join_room_participant_has_uuid ... ok
[INFO] [stdout] test test_join_room_participant_stored ... ok
[INFO] [stdout] test test_join_room_sets_host_id ... ok
[INFO] [stdout] test test_leave_room_nonexistent_participant_ok ... ok
[INFO] [stdout] test test_join_room_success ... ok
[INFO] [stdout] test test_join_room_wrong_code_returns_error ... ok
[INFO] [stdout] test test_leave_room_returns_broadcast_tx ... ok
[INFO] [stdout] test test_now_ms_is_reasonable ... ok
[INFO] [stdout] test test_maybe_record_appends_when_recording ... ok
[INFO] [stdout] test test_maybe_record_ignores_when_not_recording ... ok
[INFO] [stdout] test test_participant_colors_are_hex ... ok
[INFO] [stdout] test test_leave_room_removes_participant ... ok
[INFO] [stdout] test test_leave_room_wrong_code_returns_none ... ok
[INFO] [stdout] test test_room_state_snapshot_has_votes ... ok
[INFO] [stdout] test test_room_state_snapshot_has_surgery_log ... ok
[INFO] [stdout] test test_add_multiple_chat_messages ... ok
[INFO] [stdout] test test_now_ms_increases ... ok
[INFO] [stdout] test test_room_state_snapshot_contains_participants_array ... ok
[INFO] [stdout] test test_room_state_snapshot_participant_count ... ok
[INFO] [stdout] test test_stop_recording_clears_events_from_room ... ok
[INFO] [stdout] test test_stop_recording_clears_start_ms ... ok
[INFO] [stdout] test test_vote_down_increments_down_count ... ok
[INFO] [stdout] test test_stop_recording_returns_events ... ok
[INFO] [stdout] test test_room_state_snapshot_nonexistent_room_is_null ... ok
[INFO] [stdout] test test_recorded_event_has_offset_ms ... ok
[INFO] [stdout] test test_apply_surgery_adds_to_log ... ok
[INFO] [stdout] test test_room_state_snapshot_contains_code ... ok
[INFO] [stdout] test test_start_recording_sets_start_ms ... ok
[INFO] [stdout] test test_participant_colors_not_empty ... ok
[INFO] [stdout] test test_start_recording_clears_previous_events ... ok
[INFO] [stdout] test test_stop_recording_clears_flag ... ok
[INFO] [stdout] test test_start_recording_sets_flag ... ok
[INFO] [stdout] test test_vote_multiple_transforms ... ok
[INFO] [stdout] test test_vote_mixed_up_and_down ... ok
[INFO] [stdout] test test_vote_multiple_ups ... ok
[INFO] [stdout] test test_vote_on_nonexistent_room_returns_none ... ok
[INFO] [stdout] test test_vote_unknown_dir_no_change ... ok
[INFO] [stdout] test test_vote_up_increments_up_count ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_stream.rs (/opt/rustwide/target/debug/deps/integration_stream-2b393634891b19fc)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr] /usr/bin/xdg-open: 882: www-browser: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: links2: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: elinks: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: links: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: lynx: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: w3m: not found
[INFO] [stderr] xdg-open: no method available for opening 'http://localhost:40269'
[INFO] [stdout] test test_web_server_returns_html ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/providers_tests.rs (/opt/rustwide/target/debug/deps/providers_tests-2b247779150778ed)
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test test_anthropic_content_block_delta_deserializes ... ok
[INFO] [stdout] test test_anthropic_ping_event ... ok
[INFO] [stdout] test test_anthropic_request_with_system_serializes ... ok
[INFO] [stdout] test test_anthropic_plugin_api_url_is_https ... ok
[INFO] [stdout] test test_anthropic_plugin_name_matches_display ... ok
[INFO] [stdout] test test_anthropic_request_without_system_omits_field ... ok
[INFO] [stdout] test test_mcp_request_serializes ... ok
[INFO] [stdout] test test_mcp_response_deserializes_error ... ok
[INFO] [stdout] test test_openai_chunk_empty_delta ... ok
[INFO] [stdout] test test_openai_keeps_default_model ... ok
[INFO] [stdout] test test_mcp_response_deserializes_success ... ok
[INFO] [stdout] test test_openai_plugin_api_url_is_https ... ok
[INFO] [stdout] test test_openai_plugin_name_matches_display ... ok
[INFO] [stdout] test test_provider_anthropic_is_lowercase ... ok
[INFO] [stdout] test test_provider_clone ... ok
[INFO] [stdout] test test_provider_display_anthropic ... ok
[INFO] [stdout] test test_provider_display_openai ... ok
[INFO] [stdout] test test_provider_from_str_case_insensitive_openai ... ok
[INFO] [stdout] test test_provider_from_str_mock ... ok
[INFO] [stdout] test test_provider_from_str_empty_returns_err ... ok
[INFO] [stdout] test test_provider_from_str_openai ... ok
[INFO] [stdout] test test_provider_openai_is_lowercase ... ok
[INFO] [stdout] test test_openai_logprob_content_deserializes_with_alternatives ... ok
[INFO] [stdout] test test_openai_chunk_deserializes_with_content ... ok
[INFO] [stdout] test test_anthropic_message_start_has_no_delta_text ... ok
[INFO] [stdout] test test_provider_equality ... ok
[INFO] [stdout] test test_anthropic_api_version_format ... ok
[INFO] [stdout] test test_provider_roundtrip_display_fromstr ... ok
[INFO] [stdout] test test_provider_from_str_anthropic ... ok
[INFO] [stdout] test test_provider_from_str_unknown_returns_err ... ok
[INFO] [stdout] test test_provider_from_str_case_insensitive_anthropic ... ok
[INFO] [stdout] test test_openai_top_logprob_deserializes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/self_tune_integration.rs (/opt/rustwide/target/debug/deps/self_tune_integration-eec2f6d1b01ab637)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test anthropic_plugin_api_url_is_https ... ok
[INFO] [stdout] test anthropic_plugin_default_model_nonempty ... ok
[INFO] [stdout] test anthropic_plugin_name_matches_provider_display ... ok
[INFO] [stdout] test anthropic_plugin_build_request_contains_model ... ok
[INFO] [stdout] test anthropic_plugin_build_request_with_system ... ok
[INFO] [stdout] test openai_plugin_default_model_nonempty ... ok
[INFO] [stdout] test openai_plugin_name_matches_provider_display ... ok
[INFO] [stdout] test openai_plugin_build_request_no_system ... ok
[INFO] [stdout] test openai_plugin_build_request_contains_model ... ok
[INFO] [stdout] test openai_plugin_build_request_with_system ... ok
[INFO] [stdout] test openai_plugin_api_url_is_https ... ok
[INFO] [stdout] test store_query_multiple_experiments ... ok
[INFO] [stdout] test store_insert_returns_positive_id ... ok
[INFO] [stdout] test store_run_null_metrics_round_trip ... ok
[INFO] [stdout] test store_opens_in_memory ... ok
[INFO] [stdout] test store_load_runs_unknown_transform_empty ... ok
[INFO] [stdout] test store_query_round_trips ... ok
[INFO] [stdout] test store_load_runs_by_transform ... ok
[INFO] [stdout] test store_empty_query ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/store_heatmap_replay_tests.rs (/opt/rustwide/target/debug/deps/store_heatmap_replay_tests-1c92f9120d57c9ef)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test recorder_default_is_empty ... ok
[INFO] [stdout] test replay_record_timestamp_is_set ... ok
[INFO] [stdout] test recorder_save_and_replayer_load_roundtrip ... ok
[INFO] [stdout] test heatmap_default_construction ... ok
[INFO] [stdout] test heatmap_single_run_exports_csv ... ok
[INFO] [stdout] test heatmap_sort_by_confidence ... ok
[INFO] [stdout] test heatmap_min_confidence_filters_rows ... ok
[INFO] [stdout] test replayer_replay_to_channel_delivers_all_events ... ok
[INFO] [stdout] test store_open_in_memory ... ok
[INFO] [stdout] test store_insert_and_query_roundtrip ... ok
[INFO] [stdout] test store_dedup_evict_expired ... ok
[INFO] [stdout] test store_dedup_miss_then_register_then_hit ... ok
[INFO] [stdout] test store_storage_trait_roundtrip ... ok
[INFO] [stdout] test store_insert_experiment_with_run_atomic ... ok
[INFO] [stdout] test store_insert_run_and_load ... ok
[INFO] [stdout] test store_dedup_expired_returns_none ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/transforms_tests.rs (/opt/rustwide/target/debug/deps/transforms_tests-6a19779f8f723275)
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test test_apply_with_label_returns_label ... ok
[INFO] [stdout] test test_calculate_token_importance_deterministic ... ok
[INFO] [stdout] test test_chain_applies_in_order ... ok
[INFO] [stdout] test test_calculate_token_importance_range ... ok
[INFO] [stdout] test test_delete_apply_returns_empty ... ok
[INFO] [stdout] test test_from_str_chain ... ok
[INFO] [stdout] test test_from_str_case_insensitive ... ok
[INFO] [stdout] test test_from_str_chaos ... ok
[INFO] [stdout] test test_from_str_delay ... ok
[INFO] [stdout] test test_from_str_delete ... ok
[INFO] [stdout] test test_from_str_mock ... ok
[INFO] [stdout] test test_from_str_noise ... ok
[INFO] [stdout] test test_from_str_reverse ... ok
[INFO] [stdout] test test_from_str_scramble ... ok
[INFO] [stdout] test test_from_str_synonym ... ok
[INFO] [stdout] test test_from_str_unknown_returns_err ... ok
[INFO] [stdout] test test_from_str_uppercase ... ok
[INFO] [stdout] test test_reverse_apply ... ok
[INFO] [stdout] test test_noise_append_symbol ... ok
[INFO] [stdout] test test_tokenize_empty_string ... ok
[INFO] [stdout] test test_tokenize_splits_words ... ok
[INFO] [stdout] test test_uppercase_apply ... ok
[INFO] [stdout] test test_synonym_unknown_token_passthrough ... ok
[INFO] [stdout] test test_synonym_known_word_substituted ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/web_integration.rs (/opt/rustwide/target/debug/deps/web_integration-5fdeb01847bdffea)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test test_parse_query_encoded_key ... ok
[INFO] [stdout] test test_parse_query_duplicate_keys_last_wins_or_first_kept ... ok
[INFO] [stdout] test test_parse_query_single_param ... ok
[INFO] [stdout] test test_parse_query_missing_value_defaults_to_empty ... ok
[INFO] [stdout] test test_parse_query_no_value_key_present ... ok
[INFO] [stdout] test test_url_decode_empty_string ... ok
[INFO] [stdout] test test_url_decode_all_noise_chars_no_panic ... ok
[INFO] [stdout] test test_parse_query_multiple_params ... ok
[INFO] [stdout] test test_parse_query_empty_string ... ok
[INFO] [stdout] test test_url_decode_mixed_encoding ... ok
[INFO] [stdout] test test_url_decode_multiple_percent_sequences ... ok
[INFO] [stdout] test test_url_decode_multiple_plus_signs ... ok
[INFO] [stdout] test test_parse_query_url_decoded_values ... ok
[INFO] [stdout] test test_url_decode_percent_encoded_ascii ... ok
[INFO] [stdout] test test_url_decode_percent_encoded_utf8 ... ok
[INFO] [stdout] test test_url_decode_percent_one_hex_digit ... ok
[INFO] [stdout] test test_url_decode_plain_text ... ok
[INFO] [stdout] test test_url_decode_plus_is_space ... ok
[INFO] [stdout] test test_url_decode_roundtrip_ascii ... ok
[INFO] [stdout] test test_url_decode_trailing_percent ... ok
[INFO] [stdout] test test_url_decode_invalid_percent_sequence_passes_through ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests every_other_token
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/render.rs - render::importance_to_heat (line 91) ... ok
[INFO] [stdout] test src/render.rs - render::ConfidenceBand::from_confidence (line 51) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.40s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "f84171a7d3447243ca362ab845189c8fc48fa182a2706021e47d6254c1e96602", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f84171a7d3447243ca362ab845189c8fc48fa182a2706021e47d6254c1e96602", kill_on_drop: false }`
[INFO] [stdout] f84171a7d3447243ca362ab845189c8fc48fa182a2706021e47d6254c1e96602
